package com.policenacorp.ejb;

public interface IAbstractBusiness<Entidade, PK> {

	/**
	 * Grava uma nova entidade no banco.
	 * 
	 * @param entity
	 */
	public void save(Entidade entity);

	/**
	 * Encontra uma entidade dada a chave primaria da mesma.
	 * 
	 * @param chave
	 * @return
	 */
	public Entidade findById(PK chave);

	/**
	 * Atualiza uma entidade, sobrescrevendo alteracoes na tabela.
	 * 
	 * @param entity
	 * @return
	 */
	public Entidade update(Entidade entity);

	/**
	 * Remove da tabela uma determinada entidade.
	 * 
	 * @param entity
	 */
	public void remove(Entidade entity);

}
